# TODO 设计一个猜数字小游戏,在[1,100]随机生成一个数字,并提示用户猜测的数据是大还是小.可以直接输入"quit"退出游戏

# 从 random 模块中导入 randint 函数
import random

# 随机从 1 到 100 生成一个整数作为目标数字
target_number = random.randint(1, 100)

# 初始化猜测次数和猜测历史列表
guess_count = 0
guess_history = []

# 打印游戏的开始提示
print("欢迎参加猜数字游戏！")
print("请输入一个1到100之间的整数，或者输入命令'quit'退出游戏。")

# 使用无限循环进行猜测
while (True):
    # 获取用户输入
    user_input = input("你的猜测是：")

    # 如果用户输入 "quit"，则退出游戏
    if user_input == "quit":
        print("游戏结束，谢谢参与！")
        break

    # 如果用户输入 "hint"，根据目标数字和猜测次数给出提示
    if user_input == "hint":
        if target_number > guess_count:
            print("再大一点！")
        elif target_number < guess_count:
            print("再小一点！")
        continue

    # 检查用户输入是否为整数，如果不是，则提示用户输入无效，并继续下一次循环
    if not user_input.isdigit():
        print("输入无效，请输入一个有效的整数。")
        continue

    # 将用户输入转换为整数，增加猜测次数，并将此次猜测添加到猜测历史中
    guess = int(user_input)
    guess_count += 1
    guess_history.append(guess)

    # 根据用户猜测和目标数字的大小，给出相应提示
    if guess > target_number:
        print("猜大了！")
    elif guess < target_number:
        print("猜小了！")
    else:
        # 如果猜测正确，结束游戏，并打印出正确的数字、猜测次数和猜测历史
        print(f"恭喜你猜对了！数字是 {target_number}，你猜了 {guess_count} 次。")
        print("猜测历史：", guess_history)
        break
